home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / comm / prtcs155.zip / EMSI_LIN.DOC < prev    next >
Text File  |  1994-01-14  |  17KB  |  392 lines

  1. $VER: EMSI_LINKS DOC  Shelter EMSI Implentation  Williamson 01.36
  2.     Title:      Shelter EMSI Implementation
  3.     Author:     Robert Williamson
  4.     Version:    1.36 (March 19,1994)
  5.     This article (c) Robert Williamson 1994
  6.  
  7.     Introduction:   EMSI - Who needs it?
  8.  
  9.     Although  Shelter Mailers have EMSI, I personally have no need of EMSI.
  10. Shelter AUTOAKA WAZOO does everything I need and more.
  11.  
  12.     EMSI   capabilities   are   provided   by  the  only  freely  available
  13. implementation   and   one  of  the  select  group  of  XPR  v3  libraries:
  14. wplemsi.library  by  James McOrmond.  (XPRfts.library, XPRclock.library and
  15. XPRzedzap.library are also XPR v3) It should be obvious by the inclusion of
  16. the  clock  and emsi libraries that the XPR specification is not limited to
  17. file transfer protocols.
  18.  
  19.     Much  discussion  has taken place as to why WPL mailers took so long to
  20. support   EMSI.   The  concensus  has  been  that  since  neither  the  WPL
  21. Application  developers nor the users of WPL-based mailers had found a need
  22. for EMSI, the implementation of EMSI remained a very low priority.
  23.  
  24.     Although  many  users  of other mailers consider EMSI a requirement for
  25. them  to forego their investment in commercial mailers, this perceived need
  26. is  actually  a  false assumption.  There is virtually nothing in this area
  27. that  cannot  be  done  with  Xferq compatible packer/routers and WPL-based
  28. mailers.   As  has  been  demonstrated in a number of echos, every 'reason'
  29. that has been presented for their perceived NEED for EMSI has been shown to
  30. be  based NOT on the capabilities of EMSI, but rather, upon the LIMITATIONS
  31. of  their  mailer  and  the  FLO  file  queueing  method.  Freely-available
  32. WPL-based  mailers  do  not  have  those limitations.  Use of Xferq.library
  33. routers and features such as AUTOAKA and USEAKAS under WAZOO remove many of
  34. the  'reasons'.  
  35.  
  36.     With this all said, here is HOW EMSI is implemented in Shelter Mailers.
  37.  
  38.     The  use  of  EMSI  presupposes  that  one's  Tosser is DOMAINAWARE (ie
  39. Multi-FTN).    Options   have  been  added  to  permit  use  of  EMSI  with
  40. non-DOMAINAWARE  tossers,  (tossers  that require multiple configs for each
  41. network)  such  as  ConfMail  and TrapToss.  In my own case, using ConfMail
  42. under AutoAKA WaZoo, multi-ftn is trivial, however, with EMSI, I must add a
  43. step and sort packets by domain using FTNSORT.
  44.  
  45.     Definitions:
  46.     Some terms are used which may not be familiar:
  47.  
  48.     Domain: 
  49.     In this document, refers to an FTN organization such as FidoNet
  50.     or AmigaNet.
  51.  
  52.     Asname:
  53.     The filename transmitted to a site.  It need not be the same as
  54.     the local filename.
  55.         eg:
  56.             local:  mail:outbound/fidonet.1.167/141.0.MO1
  57.             asname: 00000025.MO1
  58.  
  59.     AutoAKA:
  60.     Shelter   feature   for  AKA  handling;  provides  domain  subsitution,
  61.     presentation  of  proper  address  in domain of site called or calling,
  62.     priority of known akas over presented akas and many other features used
  63.     both in WaZoo and EMSI.  However, AUTOAKA's presentation of our primary
  64.     address  in  the  domain  of the caller is not possible on INBOUND EMSI
  65.     sessions at this time.
  66.  
  67.     Known AKAs:
  68.     These  are  the  AKAs  we  have  listed in the Site Cache for the phone
  69.     number of the primary address of a remote site.
  70.  
  71.     USEAKAS:
  72.     A  feature  of  both  AUTOAKA  WAZOO  and SHELTER EMSI that asserts the
  73.     primacy  of  the  KNOWN  akas  for a system over those presented.  This
  74.     allows  one  to  send all files to a site for all that site's addresses
  75.     for which we pack mail under either Wazoo or Emsi.
  76.  
  77.     BeginSession:
  78.     This  is  a wpl command which asks Xferq.library for the list of files,
  79.     asnames, priorities, dispositions and queue control flags for a site or
  80.     list of sites.
  81.  
  82.     SetA:
  83.     This  is  a wpl command which fixes an address and fills stem variables
  84.     consisting of the components of the address.
  85.  
  86.     Handshake:
  87.     Method  of  determining  who  is  calling.   There are four used:  FTS1
  88.     (FTS0001) , WAZOO(FTS0006), EMSI(FSC0056) and UUCP.
  89.  
  90.     Site Cache:
  91.     In-memory   list   of   sites,   passwords,   known  akas,  handshakes,
  92.     aftersession  commands  and  other  variables  particular to a site, or
  93.     phonenumber.
  94.  
  95.     Present(ed):
  96.     The sending of EMSI data from one system to another.
  97.  
  98.     Examine(d):
  99.     The parseing of received EMSI data.
  100.  
  101.     UMH:
  102.     Universal  Mail  Hour,  also  known as ZMH (Zone Mail Hour).  This is a
  103.     period  of  time  during  which  only netmail may be transferred.  When
  104.     answering,  human,  uucp  and  fax  callers, file requests and archived
  105.     echomail should be refused.   When calling, only netmail should be sent.
  106.     It  is  assumed  that  compressed mail is echomail, which should not be
  107.     transferred  during  this  period.   For  non-standard  systems running
  108.     tossers  that  bundle or archive some netmail along with echomail, this
  109.     is may not a viable option.
  110.  
  111.  
  112.  
  113.     Outbound EMSI Sessions:
  114.  
  115.     EMSI will not be attempted if disabled (as with WAZOO and FTS1) for the
  116. particular LINE.
  117.  
  118.     EMSI  will not be attempted if a HANDSHAKE setting for the site exists,
  119. and it does not contain EMSI (as with WAZOO and FTS1).
  120.  
  121.     If  EMSI  is  enabled  for  the  line  AND  for the site called, we use
  122. wplemsi.library  to  monitor the line for an EMSI_REQ.  If none is received
  123. or  the emsi handshake failed, we then monitor for other enabled handshakes
  124. for the line and site called.  This second step includes EMSI.  Fallback to
  125. DietIFNA is supported.
  126.  
  127.  
  128.     Inbound EMSI Sessions:
  129.  
  130.     EMSI will not be attempted if disabled for the particular LINE.
  131.  
  132.     If the primary address is IN our Site Cache, we will check the password
  133. presented  against  the  password  for the primary address.  If it does not
  134. match,  we  HANGUP if the flag KILLBAD is TRUE.  This is viable as the EMSI
  135. spec requires that the same password exist for all aka's presented.
  136.  
  137.     If KILLBAD is FALSE, we will force the site to NPU (no pickup) and do a
  138. BeginSession  with  site  BADPASSWORD.  A textfile describing the situation
  139. should  be  queued for this address with priority 75 and disposition Leave.
  140. This  action  was  suggested  by  James  McOrmond.  This still allows us to
  141. receive files from the site in our NONSECURE inbound.
  142.  
  143.     Once  a  carrier  is  established,  our  banner is sent, and if EMSI is
  144. enabled  for  the LINE, an EMSI_REQ (followed by a CR) is sent.  The system
  145. prompt is then sent.  Proper formatting of output insures that the EMSI_REQ
  146. is  not see by terminal users.  We then monitor the line for an CR, if true
  147. we  send  the  EMSI_REQ  and  system prompt again.  If any EMSI sequence is
  148. received,  wplemsi.library  processes  the  handshake.   If  FTS1  or WAZOO
  149. handshakes are received instead, they are processed.
  150.  
  151.     If  the  library  indicates  the  handshake  was  successful,  we check
  152. password  and  process  link  and  compatibility  flags and invoke selected
  153. protocol.
  154.  
  155.     XferQ Domain Substitution Override:
  156.  
  157.     If  the  domain  of  the  caller is FIDONET and the Zone is not a valid
  158. FIDONET  Zone  (1-6),  we will attempt to determine the correct domain from
  159. the zones in our AKA config.
  160.  
  161.     Point Correction:
  162.  
  163.     The  WPL  SetA  command  will  substitute  missing components of an FTN
  164. address from the default address in Xferq:hostaddr.  Since the point number
  165. is  not  presented if 0 under EMSI, this would result in the BOSS's address
  166. being  changed to that of the point.  Shelter mailers detect this condition
  167. and  change  the  BOSS's point number to 0, in order to restore the correct
  168. address.
  169.  
  170.     Domain Correction:
  171.  
  172.     Some  mailers  (TrapDoor,for  example)  do not present the domain under
  173. EMSI.   SetA  will  normally  substitute  our  site's  default  domain from
  174. Xferq:hostaddr.   This  often  results in addresses with incorrect domains.
  175. Shelter  Mailers  will  attempt to correct this also, using the domains and
  176. zones in our own AKA's to try to determine the correct domain of the remote
  177. site.
  178.  
  179.     Security:
  180.  
  181.     Since it is not possible to check that all AKAs presented are valid for
  182. a remote site, we never BeginSession with the AKAs that the remote site has
  183. presented.   Shelter  mailers  always  give primacy to the KNOWN AKA's of a
  184. site over those it may present.  Other than a remote's Primary address, all
  185. AKA's  a remote presents are IGNORED.  If the site is in our Site Cache and
  186. the  password presented is valid for the primary address presented, we will
  187. BeginSession with the KNOWN AKAs.
  188.     If the site is NOT in our Site Cache (ie the site is not a KNOWN site),
  189. we BeginSession with the primary address presented ONLY.
  190.  
  191.  
  192.     Link and Compatibility Flag Processing:
  193.  
  194.     Presently,  a  strict  interpretation  of  the  EMSI  specification  is
  195. implemented,  without  regards  to  the actual implementation in FrontDoor.
  196. Link  Pickup  flags  are  only  presented when calling and are examined and
  197. processed  only  when  answering.   Link Hold flags are only presented when
  198. answering and are examined and processed only when calling.
  199.  
  200.     Link Flags:
  201.     Link  codes  consist  of a string of flags that specify DESIRED CONNECT
  202. CONDITIONS.  They apply to the CURRENT SESSION ONLY.  There are three TYPES
  203. of link flags:  communications parameters, pickup options and hold options.
  204.  
  205.     Link Communications Parameters:
  206.     Presented  by  both  the calling system and answering system, this flag
  207. defines the communications link data bits, stop bits and parity parameters.
  208. The  purpose  of  this flag is unclear however, my assumption is that it is
  209. expected  that one end or the other change his communications parameters to
  210. match.The specification does not say which end must compromise, nor what to
  211. do  if a) no compromise is possible, b) software (such as wpl.library) does
  212. not  support changing these parameters while connected.  Obviously, if only
  213. one end changes link parameters, the session will fail.
  214.     Shelter  mailers always use 8 bits, 1 stop, No parity and set the first
  215. link  code  to  8N1.   Shelter  mailers do not take any action on the value
  216. presented by the remote site.
  217.  
  218.  
  219.     Link Pickup options:
  220.         The  calling  system  can  present one of three Link Pickup options
  221. related  to  pickup of mail.  These are presented during OUTGOING calls and
  222. examined during INCOMING calls.
  223.  
  224.          /  PUA        Pickup mail for all presented addresses.
  225.  one of |   PUP        Pickup mail for primary address only.
  226.          \  NPU        No mail pickup desired.
  227.  
  228.     If none of these flags are presented, PUA is assumed.
  229.  
  230.     PUA:
  231.         This  flag  is  presented  if DOMAINAWARE is TRUE.  These means our
  232. tosser is zone and/or domain aware.
  233.  
  234.         This  flag  is not examined, since sending all mail for all akas is
  235. the  default  action  under  EMSI.  The action to take if NO Pickup flag is
  236. presented is undefined in the EMSI spec.  We assume PUA.
  237.  
  238.     PUP:
  239.         This  flag is presented if DOMAINAWARE is FALSE.  On outgoing calls
  240. with  Shelter's  PRIMARYONLY option set TRUE, the Primary address is always
  241. that  address in the domain of the site we are calling.  Shelter will still
  242. present PUP, but this is redundant.
  243.  
  244.         When examined, mail is sent for Primary (first) address presented.
  245.  
  246.     NPU:
  247.         This  flag  is  presented  when using the Shelter dialer's NOPICKUP
  248. session  option.  The presentation of NPU is a courtesy measure ONLY, since
  249. we hangup after sending our mail.
  250.  
  251.         When  examined, NO files are sent, mail or OTHERWISE.  We do not do
  252. a  BeginSession,  UNLESS  the  remote also presented PUP.  This would be an
  253. error  on  his  part,  but we ignore that fact :) and just give him what he
  254. wanted.
  255.  
  256.  
  257.     Link Hold options:
  258.         When  answering,  the  site  can  present Link Hold flags which are
  259. requests  to  the  calling  site to not send certain types of files.  These
  260. flags  should  be  presented  only  on  incoming calls and examined only on
  261. outgoing calls.
  262.  
  263.              HRQ        Hold file requests (not processed at this time).
  264.  and/or
  265.          /   HAT        Hold ALL traffic.
  266.  one of |
  267.          \   HXT        Hold compressed mail traffic.
  268.  
  269.  
  270.     HRQ:
  271.         This flag is presented during UMH if STRICTZMH is TRUE.
  272.         This  flag  is  also presented if host.freq is FALSE.  host.freq is
  273. toggled FALSE when ALLOWFREQS is FALSE.
  274.  
  275.         When  examined,  remote.freq  is  set  FALSE  and  FindFreqs is not
  276. executed. File requests are not sent to remote site.
  277.  
  278.     HAT:
  279.         Never  presented.   I  can't  see this use right now...Disk Full ??
  280. why  answer at all if you don't want to accept anything??
  281.  
  282.         When  examined,  BeginSession  is NOT executed.  This means that no
  283. files are sent, but files can be received.
  284.  
  285. NOTE:  The existance of a flag which tells the caller not to send anything,
  286. and  which  is  issued only when answering is somewhat strange.  For HAT to
  287. serve  a purpose, the limiting of Link to calling systems and Hold flags to
  288. answering system would have to be dropped.
  289.  
  290.     HXT:
  291.         This flag is presented during UMH if STRICTZMH is TRUE.
  292.  
  293.         When examined, MinSendPri is set to 60.  In the Shelter system, the
  294. result of receiving this flag is that files with a priority of less than 60
  295. are  not sent.  Shelter's FLOCVT and ADDWORK functions set PKT's and CUT to
  296. 60  if not priority was specified.  This feature does not negate the use of
  297. compressed netmail packets [*.sq(arctype)]
  298.  
  299.  
  300.     Compatibility Flags:
  301.         Compatibility  codes  consist of a string of flags that specify the
  302. CAPABILITIES  (protocols  and archivers) and ENABLED FEATURES (file request
  303. handler, filename conversion) of the mailer.
  304.  
  305.     Standard Protocol Flags:
  306.  
  307.         NCP     No common protocol ( a failure )
  308.  
  309.         DZA     DirectZAP (Zmodem variant).
  310.         ZAP     ZedZap (Zmodem variant).
  311.         ZMO     Zmodem w/1,024 byte data packets (Wazoo ZedZip).
  312.         JAN     Janus
  313.         KER     Kermit
  314.         SLK     SeaLink
  315.  
  316.         WPL Only Protocol Flags:
  317.         TEL     Telink  (FTS1)
  318.         XMO     Xmodem  (DietIFNA)
  319.         YMO     Ymodem
  320.         UUG     uucp-g
  321.         RYO     Roll Your Own :)
  322.  
  323.         Other:
  324.         HYD     Hydra
  325.  
  326.  
  327.     NCP:
  328.         This  is presented if no compatible protocols (failure).  It logged
  329. if  the  remote  presents  it.  We do not have any facility to present this
  330. flag,  since  protocol  compatibility  is  determined AFTER emsi handshake.
  331. Instead  we  fall  back  to DietIFNA.  Shelter, JamMail and Binkley support
  332. this.
  333.  
  334.  
  335.     Other Compatibility flags:
  336.  
  337.         NRQ     No file requests accepted by this system.
  338.  
  339.     NRQ:
  340.         This flag should be presented if there is NO FILE REQUEST HANDLER.
  341.  
  342.         When examined, remote.freq is set FALSE.  No requests will be sent.
  343.  
  344. **NOTE:
  345.         It  seems  some mailers present NRQ as the caller's version of HRQ.
  346. My  impression  is  that  this  flag  is  presented  by  newer  versions of
  347. wplemsi.library  if  host.freq  is  FALSE.   I  consider  this action even
  348. when FrontDoor does it, to be incorrect since:
  349.  
  350.     - NRQ flag indicates NO REQUEST SERVER AVAILABLE
  351.     - HRQ flag indicates NO REQUESTS AT THIS TIME.
  352.     - Under  WAZOO,  the  lack of a NODELIST X?  flag is 
  353.       the equivalent to EMSI presentation of NRQ
  354.  
  355.         NRQ  should  be  presented  ONLY IF the mailer does not have a file
  356. request  server.   In  other  words, the flag should be added during mailer
  357. generation  and  never  be  based upon the state of the host.freq variable.
  358. The internal <stem>.freq variable can mean EITHER hold requests or no request
  359. server,  since  it  is  also  used  under  wazoo  which  does not have this
  360. distinction.
  361.  
  362.         If  the  author  of the EMSI specification had intended that NRQ be
  363. the  caller's  version  of  HRQ,  why  then  are  there  separate  LINK and
  364. COMPATIBILTY flags, if they are not consistanty applied?  Why was there any
  365. distinction made between calling and answering system LINK flags?  It would
  366. be more consistant if ALL LINK flags be presentable by either system.
  367.         In  fact,  for  consistancy,  the  chosen  protocol  should also be
  368. presented as a LINK flag.
  369.  
  370.         ARC     ARCmail 0.60-capable, as defined by the FTSC.
  371.                 NO ACTION required
  372.  
  373.         XMA     Site supports other forms of compressed mail.
  374.                 NO ACTION required
  375.     
  376.         FNC     Filename conversion. This indicates that any transmitted
  377.                 filename must follow the CP/M & MS-DOS 8.3 restriction.
  378.                 An eight  character file name followed by a three character
  379.                 extension; eg. FILENAME.EXT
  380.                 NO ACTION POSSIBLE as yet. (See HXT/FNC discussion paper)
  381.  
  382. **NOTE:
  383.         Since FNC is a compatibility flag, it SHOULD be interpreted to mean
  384. that  the  system  presenting FNC is advertising the CAPABILITY to send 8.3
  385. file names :) If the intention of the author of the EMSI spec was that this
  386. was  a  request  for the other end to modify filenames, this should have be
  387. stated.  The word 'received' should have been used instead of 'transmitted'
  388. and the FNC flag should have been defined as a LINK flag for consistancy in
  389. the specification.
  390.  
  391.                                    =eot=
  392.